<?php

/* * ************************************************************************* 
 * global.func.php
 * Encoding : UTF-8
 * Desc. :模块公共函数库
 * Created on : 2013-4-23 12:36:19 by Aiden , aiden.ke@doosnet.net
 * Updated on : 2013-4-23 12:36:19 by Aiden , aiden.ke@doosnet.net
 * ************************************************************************* */

/**
 * 检查是否超时
 * @param selId $int 商城标识ID
 * @param item_no $string 商城ID集合
 * @return string
 */
function check_timeout($selId, $item_no) {
    global $startTime;

    //当前时间
    $currentTime = getmicrotime(TRUE);
    if ($currentTime - $startTime > intval(pc_base::load_config('system', 'updateCurrentIdTime'))) {//每隔N分钟删除一次，更新一次CurrentId        
        $item_special_model_db = pc_base::load_model('item_special_model');
        $item_special_model_db->update_shelfviews($selId, $currentTime, $item_no);

        $startTime = $currentTime;
        $item_no = 0;
    }

    if ($currentTime - SYS_START_TIME > intval(pc_base::load_config('system', 'timeout'))) {
        $item_special_model_db = pc_base::load_model('item_special_model');
        $item_special_model_db->update_shelfviews($selId, $currentTime, $item_no);
        exit('Timeout update');
    }

    return $item_no;
}

/**
 * 商品下架主函数
 * @param output string 页面源码
 * @param info $array 运行信息
 * @param request $array 请求头信息
 */
function parser_shelf($output, $info, $request) {
    try {
        global $item_no;

        if (empty($output)) {//若空，则返回
            return;
        }

        //判断编码
        $title = pet_str('<title>', '</title>', $output);
        if (!is_utf8($title)) {
            $output = mb_convert_encoding($output, 'UTF-8', 'GBK');
        }

        //将请求数据赋值给Row        
        $row = $request['data'];

        //表名
        $table_name = pc_base::load_config('tablemap', $row['mall_id']);

        //商城名
        $mall_name = str_replace(array('shop_', '_item'), '', $table_name);

        //加载商城公共方法
        pc_base::load_mall_func('global', 'collection', $mall_name);

        //用于检查显示
        echo "<hr/>item_no:" . $row['item_no'] . '=><a  target="_blank" href="' . $row['goods_url'] . '">' . $row['goods_url'] . "</a><br/>";

        //是否正常
        $do = is_onsale($output, $row);

        //判断是否有货的值
        if (!$do) {
            if ($item_no == '0') {
                $item_no = $row['item_no'];
            } else {
                $item_no = $item_no . ',' . $row['item_no'];
            }
        } else {

            //获取价格、销量、评分、库存信息
            $data = get_infos($output, $row, TRUE);

            //价格
            $price = $data['price'];

            //价格为空，京东商城特殊处理
            if (!$price && $row['mall_id'] == 55) {
                if ($item_no == '0') {
                    $item_no = $row['item_no'];
                } else {
                    $item_no = $item_no . ',' . $row['item_no'];
                }
                return;
            }

            //销量
            $reviews = $data['reviews'];

            //评分
            if (!empty($reviews) && $reviews > 0) {
                $score = $data['score'];
            } else {
                $score = 0;
            }

            //库存
            $stock = $data['stock'];


            $item_price_model = pc_base::load_model('item_price_model');
            $trendprice = $item_price_model->update_price_table($table_name . '_price', $row['mall_id'], $row['item_no'], $price); //更新价格表

            $item_trends_model = pc_base::load_model('item_trends_model');
            $trendprice=$item_trends_model->update_trends_table($table_name . '_trends', $row['mall_id'], $row['item_no'], $price, $reviews, $score);
            
            
            $item_special_model = pc_base::load_model('item_special_model');
            $item_special_model->update_price($table_name . '_special', $row['mall_id'], $row['item_no'], $price, $score, $reviews, $trendprice, $stock); //更新主表信息
        }

        //检查是否超时
        $item_no = check_timeout($row['mall_id'], $item_no);
    } catch (Exception $e) {
        print $e->getMessage();
        exit();
    }
}

?>
